package com.ydd.service;

import com.ydd.dto.FrontListDTO;
import com.ydd.dto.FrontRegDTO;
import com.ydd.dto.LoginDTO;
import com.ydd.vo.*;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;

public interface IndexService {
    /**
     * 登录
     * @param loginDTO
     * @return
     */
    JWtToken login(LoginDTO loginDTO);

    /**
     * 获取用户资料
     * @return
     */
    ProfileVO profile();

    /**
     * 获取主页统计信息
     * @return
     */
    @Transactional(isolation = Isolation.READ_COMMITTED) // 添加事务隔离级别
    BaseInfoVO baseInfo();

    /**
     * 获取热门指定文章数据
     * @param page
     * @param limit
     * @return
     */
    FrontNewVO frontNewIndex(String page, String limit);

    /**
     * 获取首页和全局数据
     * @return
     */
    @Transactional(isolation = Isolation.READ_COMMITTED) // 添加事务隔离级别：读已提交
    FrontIndexVO frontIndexIndex();

    /**
     * 获取最近文章数据
     * @return
     */
    FrontHotVO frontNew();

    /**
     * 获取最热文章数据
     * @return
     */
    FrontHotVO frontRecommend();

    /**
     * 文章详情
     * @param id
     * @return
     */
    FrontShowVO frontshow(String id);

    /**
     * 用户注册
     * @param regDTO
     * @return
     */
    FrontRegVO reg(FrontRegDTO regDTO);

    /**
     * 文章列表数据
     * @param frontListDTO
     * @return
     */
   indexlistDTO list(FrontListDTO frontListDTO);
}
